from selenium.webdriver.support.ui import WebDriverWait
import time
import random
'''公共功能操作模块'''

class CommonPage():

    def page_common(self,driver):
        '''公共模块--页码'''
        driver.find_element_by_link_text('商品中心').click()
        time.sleep(1)
        #显示等待：对某一元素进行等待查找
        element = WebDriverWait(driver,10,0.5).until(lambda driver:driver.find_element_by_link_text('确定'))
        element.click()
        driver.find_element_by_link_text('下一页').click()
        time.sleep(1)
        driver.find_element_by_css_selector('span[class=disabled]').click()
        time.sleep(3)
        try:
            driver.find_element_by_link_text('2').click()
        except:
            print('There is no page 2')
            driver.find_element_by_css_selector('span[class=current]').click()

    def choose_all_on(self,driver):
        '''公共模块--全选、上架'''
        driver.find_element_by_link_text('商品中心').click()
        time.sleep(1)
        #当前页面具有多个单选框：全选
        driver.find_element_by_link_text('全选').click()
        driver.find_element_by_link_text('上架').click()

    def choose_all_down(self,driver):
        '''公共模块--全选、上架'''
        driver.find_element_by_link_text('商品中心').click()
        time.sleep(1)
        # 当前页面具有多个单选框：全选
        driver.find_element_by_link_text('全选').click()
        driver.find_element_by_link_text('下架').click()

    def choose_one_down(self,driver):
        '''公共模块--单选框、下架'''
        driver.find_element_by_link_text('商品中心').click()
        time.sleep(1)
        # 当前页面具有多个单选框：全部获取，勾选一个
        choices = driver.find_elements_by_css_selector('input[type=checkbox]')
        choices[0].click()
        driver.find_element_by_link_text('下架').click()

    def choose_one_on(self,driver):
        '''公共模块--单选框、上架'''
        driver.find_element_by_link_text('商品中心').click()
        time.sleep(1)
        # 当前页面具有多个单选框：全部获取，勾选一个
        choices = driver.find_elements_by_css_selector('input[type=checkbox]')
        choices[0].click()
        driver.find_element_by_link_text('上架').click()

    def delete(self,driver):
        '''公共模块--删除商品'''
        driver.find_element_by_link_text('商品中心').click()
        time.sleep(1)
        # 当前页面具有多个单选框：全部获取，再随机勾选一个商品进行删除操作
        choices = driver.find_elements_by_css_selector('input[type=checkbox]')
        random.choice(choices).click()
        driver.find_element_by_link_text('删除').click()
        time.sleep(1)
        #点击确认删除
        driver.find_element_by_xpath('/html/body/div[1]/div/table/tbody/tr[2]/'
                                     'td[2]/div/table/tbody/tr[3]/td/div/button[1]').click()